// ==UserScript==
// @name         极简页面编辑器
// @namespace    http://tampermonkey.net/
// @version      0.1.1
// @description  点击右下角的修改按钮或使用右键菜单，页面变更为可编辑模式，点击恢复复原
// @author       WuTong
// @match        *://*/*
// @grant        GM_registerMenuCommand
// ==/UserScript==

(function() {
    'use strict';

    // 状态变量
    let isEditing = false;
    let button = null;

    // 创建按钮
    function createButton() {
        if (button) return; // 避免重复创建

        button = document.createElement('button');
        button.id = 'universal-page-editor-button';
        button.textContent = '修改';
        button.style.cssText = `
            position: fixed;
            bottom: 20px;
            right: 0px;
            z-index: 9999;
            padding: 6px 2px;
            width: 36px;
            background-color: #ffffff;
            color: #FF9800;
            border-radius: 5px;
            border:none;
            cursor: pointer;
            writing-mode: vertical-rl;
            text-orientation: mixed;
            font-weight: bold;
        `;

        // 添加按钮点击事件
        button.addEventListener('click', toggleEditing);

        // 添加到页面
        document.body.appendChild(button);
    }

    // 切换编辑状态
    function toggleEditing() {
        try {
            // 确保按钮存在
            if (!button) {
                createButton();
            }

            isEditing = !isEditing;

            if (isEditing) {
                // 进入编辑状态
                button.textContent = '恢复';
                button.style.color = '#4CAF50';
                enableEditing();
                console.log('已进入编辑模式');
            } else {
                // 退出编辑状态
                button.textContent = '修改';
                button.style.color = '#FF9800';
                disableEditing();
                console.log('已退出编辑模式');
            }
        } catch (error) {
            console.error('切换编辑状态时出错:', error);
            alert('操作失败: ' + error.message);
        }
    }

    // 启用编辑模式
    function enableEditing() {
        // 设置body为可编辑
        document.body.contentEditable = true;
        document.body.style.outline = '2px dashed #ff0000';

        // 添加编辑提示
        let overlay = document.getElementById('editor-overlay');
        if (!overlay) {
            overlay = document.createElement('div');
            overlay.id = 'editor-overlay';
            overlay.style.cssText = `
                position: fixed;
                top: 0;
                left: 0;
                width: 100%;
                background-color: rgba(0, 0, 0, 0.1);
                color: white;
                padding: 5px;
                text-align: center;
                z-index: 9998;
                font-family: Arial, sans-serif;
            `;
            document.body.appendChild(overlay);
        }
        overlay.textContent = '编辑模式: 整个页面已可编辑。点击右下角"恢复"按钮或使用右键菜单撤销更改。';
    }

    // 禁用编辑模式
    function disableEditing() {
        // 禁用编辑
        document.body.contentEditable = false;
        document.body.style.outline = '';

        // 移除编辑提示
        const overlay = document.getElementById('editor-overlay');
        if (overlay) {
            document.body.removeChild(overlay);
        }
    }

    // 页面加载完成后创建按钮
    window.addEventListener('load', () => {
        try {
            // createButton();
            // console.log('页面编辑器按钮已创建');
        } catch (error) {
            console.error('创建按钮时出错:', error);
        }
    });

    // 添加右键菜单项（如果支持）
    if (typeof GM_registerMenuCommand !== 'undefined') {
        GM_registerMenuCommand('切换页面编辑模式', toggleEditing);
        // console.log('右键菜单已注册');
    } else {
        console.warn('当前环境不支持GM_registerMenuCommand，右键菜单不可用');
    }
})();